﻿var isPhone = 1;
function getCode(e) {
    checkPhone(); //验证手机号码
    if (isPhone) {
        resetCode(); //倒计时
    } else {
        $('#registPhone').focus();
    }
}
//验证手机号码
function checkPhone() {
    var phone = $('#registPhone').val().trim();
    var pattern = /^[1][3,4,5,7,8][0-9]{9}$/;
    isPhone = 1;
    if (!pattern.test(phone) || phone == '') {
        $("#registPhone").parent("div").parent("div").find("span").eq(0).show();
        isPhone = 0;
        return;
    }
}
//倒计时
// function resetCode() {
//     var limit = 60;
//     $('#sentCode').hide();
//     $('#codeTime').html(limit);
//     $('#resetCode').show();
//     var second = limit;
//     var timer = null;
//     timer = setInterval(function () {
//         second -= 1;
//         if (second > 0) {
//             $('#codeTime').html(second);
//         } else {
//             clearInterval(timer);
//             $('#sentCode').show();
//             $('#resetCode').hide();
//         }
//     }, 1000);
// }

var loginFormValid = true;
var sinupFormVaild = true;

$(function () {
    var codeid = localStorage.getItem('codeid');
    if(codeid) {
        $("#areacodes-login .dropdown-menu").find("li[data-areacode='86']").click();
    }else{
        if($(".LangName").attr('title') === '简体中文') {
            $("#areacodes-login .dropdown-menu").find("li[data-areacode='86']").click();
        }else {
            $("#areacodes-login").children('li').eq(0).click();
        }
    }

    $("#areacodes-login").find("li").on('click', function() {
        var codeid = $(this).attr('data-areacode');
        localStorage.setItem('codeid',codeid);
    })
    //登录验证
    $("#loginPhone").blur(function () {
        var element = $(this).parent().next("span")[0];
        var v = $(this).val().trim();
        if (!v) {
            utils.ShowErrorOnPage(TEXT("号码不能为空"), element);
            loginFormValid = false;
            return;
        }
        if (!v.isMobilePhone()) {
            utils.ShowErrorOnPage(TEXT("号码格式不正确"), element);
            loginFormValid = false;
            return;
        }

        $(element).hide();
    });
    // $("#loginMail").blur(function () {
    //     var element = $(this).next("span")[0];
    //     var v = $(this).val().trim();
    //     if (!v) {
    //         utils.ShowErrorOnPage(TEXT("邮箱地址不能为空"), element);
    //         loginFormValid = false;
    //         return;
    //     }
    //     if (!v.isMailAddress()) {
    //         utils.ShowErrorOnPage(TEXT("邮箱格式不正确"), element);
    //         loginFormValid = false;
    //         return;
    //     }

    //     $(element).hide();
    // });

    $("#loginPdw").blur(function () {//密码
        var errorel = $(this).next("span")[0];
        var v = $(this).val().trim();
        if (!v) {
            utils.ShowErrorOnPage("密码不可为空", errorel);
            loginFormValid = false;
            return;
        }

        $(errorel).hide();
    });

    // $("#registMail").blur(function () {//手机号
    //     var element = $(this).parent().next("span")[0];
    //     var v = $(this).val().trim();
    //     if (!v) {
    //         utils.ShowErrorOnPage("邮箱地址不能为空", element);
    //         sinupFormVaild = false;
    //         return;
    //     }
    //     if (!v.isMailAddress()) {
    //         utils.ShowErrorOnPage("邮箱格式不正确", element);
    //         sinupFormVaild = false;
    //         return;
    //     }

    //     $.ajax({
    //         url: "/AppAccount/CheckMailAddress",
    //         type: "get",
    //         dataType: "json",
    //         data: { mailAddress: v },
    //         success: function () {

    //         },
    //         error: function (e) {
    //             utils.ShowAjaxError(e, element);
    //             sinupFormVaild = false;
    //         }
    //     });

    //     $(element).hide();
    // });

    $("#registPhone").blur(function () {//手机号
        verifyPhone.call(this);
    });

    $("#invitedcode").blur(function () {//邀请码
        var errorel = $(this).parent().next('span')[0];
        var v = $(this).val();
        if (!v) {
            utils.ShowErrorOnPage("邀请码不可为空", errorel);
            sinupFormVaild = false;
            return;
        }
        if (v.length < 6 || v.length > 10) {
            utils.ShowErrorOnPage("邀请码不正确", errorel);
            sinupFormVaild = false;
            return;
        }

        $(errorel).hide();
    });

    $("#registCode").blur(function () {//验证码
        var errorel = $(this).parent().next("span")[0];
        var val = $(this).val().trim();
        if (!val) {
            utils.ShowErrorOnPage("验证码不可为空", errorel);
            sinupFormVaild = false;
            return;
        }

        $(errorel).hide();
    });

    $("#registNickname").blur(function () {//昵称
        var errorel = $(this).parent().next("span")[0];
        var v = $(this).val().trim().toLowerCase();
        if (!v) {
            utils.ShowErrorOnPage("昵称不可为空", errorel);
            sinupFormVaild = false;
            return;
        }

        if (v.length < 5 || v.length > 18) {
            utils.ShowErrorOnPage("昵称必须在5到18个字符内", errorel);
            sinupFormVaild = false;
            return;
        }

        // var myreg = /^([\u4E00-\uFA29]|[\uE7C7-\uE7F3]|[a-z0-9_]){5,18}$/;
        var myreg = /^([a-z0-9_]){5,18}$/;
        if (!myreg.test(v)) {
            utils.ShowErrorOnPage("昵称必须为英文、数字或下划线_字符", errorel);
            sinupFormVaild = false;
            return;
        }

        $.ajax({
            url: "/AppAccount/CheckNickname",
            type: "get",
            dataType: "json",
            data: { nickname: v },
            success: function () {
            },
            error: function (e) {
                utils.ShowAjaxError(e, errorel);
                sinupFormVaild = false;
            }
        });

        $(errorel).hide();
    });


    $("#registPwd").blur(function () {//注册第一次密码
        var errorel = $(this).parent().next('span')[0];
        var v = $(this).val();
        if (!v) {
            utils.ShowErrorOnPage("密码不可为空", errorel);
            sinupFormVaild = false;
            return;
        }
        if (v.length < 6 || v.length > 20) {
            utils.ShowErrorOnPage("密码必须在6到20位", errorel);
            sinupFormVaild = false;
            return;
        }

        $(errorel).hide();
    });


    $("#registRepwd").blur(function () {//注册确认密码
        var errorel = $(this).parent().next('span')[0];
        var v = $(this).val();

        if (v !== $("#registPwd").val()) {
            utils.ShowErrorOnPage("确认密码与密码不一致", errorel);
            sinupFormVaild = false;
            return;
        }

        $(errorel).hide();
    });

});

//***邮箱验证码
// $('#sentCode').on('click', function () {
//     var element = $('#registMail').parent().next("span")[0];
//     var v = $('#registMail').val().trim();
//     if (!v) {
//         utils.ShowErrorOnPage("邮箱地址不能为空", element);
//         return;
//     }
//     if (!v.isMailAddress()) {
//         utils.ShowErrorOnPage("邮箱格式不正确", element);
//         return;
//     }

//     $(this).attr('disabled', true);

//     $.ajax({
//         url: "/MessageSend/SendEmailVerificationCode",
//         type: "post",
//         dataType: "json",
//         data: { mailAddress: v },
//         success: function (e) {
//             resetCode();
//         },
//         error: function (e) {
//             utils.ShowAjaxError(e);
//         },
//         complete: function () {
//             $(this).removeAttr('disabled');
//         }.bind(this)
//     });
// });

//倒计时
function resetCode() {
    $('#sentCode').hide();
    $('#codeTime').html('60');
    $('#resetCode').show();
    var second = 60;
    var timer = null;
    timer = setInterval(function () {
        second -= 1;
        if (second > 0) {
            $('#codeTime').html(second);
        } else {
            clearInterval(timer);
            $('#sentCode').show();
            $('#resetCode').hide();
        }
    }, 1000);
};

var phoneVerifyFormValid = true;

function verifyPhone() {
    var element = $($("#registPhone").parents('.input')[0]).children('.error-tips')[0];
    var v = $("#registPhone").val().trim();
    if (!v) {
        utils.ShowErrorOnPage(TEXT("手机号不能为空"), element);
        phoneVerifyFormValid = false;
        return false;
    }

    if (isNaN(parseFloat(v))) {
        utils.ShowErrorOnPage(TEXT("手机号格式不正确"), element);
        phoneVerifyFormValid = false;
        return false;
    }

    $(element).hide();
    return true;
};

function verifyCode() {
    var errorel = $('#registCode').parent().next(".error-tips")[0];
    var val = $('#registCode').val().trim();
    if (!val) {
        utils.ShowErrorOnPage(TEXT("验证码不可为空"), errorel);
        phoneVerifyFormValid = false;
        return false;
    }

    $(errorel).hide();

    return true;
};

var captcha = null;
/** 手机验证 */
$('#sentCode').on('click', function () {
    var element = $('#registPhone').parent().parent().next("span")[0];
    var v = $('#registPhone').val().trim();
    if (!v) {
        utils.ShowErrorOnPage("手机号码不能为空", element);
        return;
    }
    if (!v.isMobilePhone()) {
        utils.ShowErrorOnPage("号码不正确", element);
        return;
    }
    var para = {
        phoneNumberAreaCode: $('#areacodes').phoneAreaCodes('getValue').trim(),
        phoneNumber: $('#registPhone').val().trim()
    };
    $(this).attr('disabled', true);

    // 验证码模块, appid是在 Login视图中定义的变量
    if (captcha == null) {
        captcha = new TencentCaptcha(document.getElementById('sentCode'), appid, function (res) {
            // console.log(res)
            // res（未通过验证）= {ret: 1, ticket: null}
            // res（验证成功） = {ret: 0, ticket: "String", randstr: "String"}
            if (res.ret === 0) {
                var verify = { Ticket: res.ticket, Randstr: res.randstr, bizState: res.bizState };
                var para = {
                    phoneNumberAreaCode: $('#areacodes').phoneAreaCodes('getValue').trim(),
                    phoneNumber: $('#registPhone').val().trim(),
                    Ticket: verify.Ticket,
                    Randstr: verify.Randstr,
                    bizState: verify.bizState
                };

                $.ajax({
                    url: "/MessageSend/SendSmsVerifyCode",
                    type: "post",
                    dataType: "json",
                    data: para,
                    success: function (e) {
                        resetCode();
                    },
                    error: function (e) {
                        utils.ShowAjaxError(e, element);
                        phoneVerifyFormValid = false;
                    },
                    complete: function () {
                        $("#sentCode").removeAttr('disabled');
                    }.bind(this)
                });
            } else {
                // 验证失败
                $("#sentCode").removeAttr('disabled');
            }
            captcha.destroy();  // 隐藏验证码
        }, { bizState: 'signup' });
    }
    // 加载验证码
    captcha.show();
});



$('#signup-btn').on('click', function () {

    sinupFormVaild = true;
    $('#registMail').blur();
    $('#registCode').blur();
    $('#registNickname').blur();
    $('#registPwd').blur();
    $('#registRepwd').blur();
    if ($('#invitedcode').length > 0)
        $('#invitedcode').blur();
    if (!sinupFormVaild) {
        return;
    }

    var data = {
        // MailAddress: $('#registMail').val().trim(),
        PhoneNumberAreaCode: $('#areacodes').phoneAreaCodes('getValue'),
        PhoneNumber: $('#registPhone').val().trim(),
        AliasName: $("#registNickname").val().trim(),
        Password: $('#registPwd').val().trim(),
        VerifyCode: $('#registCode').val().trim(),
        InvitedCode: $('#invitedcode').length > 0 ? $('#invitedcode').val().trim() : '',
    };
    var errorel = $('#registRepwd').parent().next('span')[0];

    $(this).attr('disabled', true);
    $.ajax({
        // url: "/AppAccount/SignUpByMailAddress",//邮箱验证地址
        url:'/AppAccount/SignUpByPhone',
        type: "post",
        dataType: "json",
        data: data,
        success: function () {
            window.location.href = "/";
        },
        error: function (e) {
            utils.ShowAjaxError(e, errorel);
        },
        complete: function () {
            $(this).removeAttr('disabled');
        }.bind(this)
    })
});

// 登录按钮
$('#loginBtn').on('click', function () {

    loginFormValid = true;
    $('#loginMail').blur();
    $('#loginPdw').blur();
    if (!loginFormValid) {
        return;
    }

    var errorel = $('#loginPdw').next("span")[0];
    var PhoneNumberAreaCode = $('#areacodes-login').phoneAreaCodes('getValue');
    var loginPhone = $('#loginPhone').val().trim();

    if (getCookie("show-captcha").length > 0) {
        // 验证码模块, appid是在 Login视图中定义的变量
        if (captcha == null) {
            captcha = new TencentCaptcha(document.getElementById('loginBtn'), appid, function (res) {
                // console.log(res)
                // res（未通过验证）= {ret: 1, ticket: null}
                // res（验证成功） = {ret: 0, ticket: "String", randstr: "String"}
                if (res.ret === 0) {
                    var verify = { Ticket: res.ticket, Randstr: res.randstr, bizState: res.bizState };
                    var para = {
                        loginName: PhoneNumberAreaCode + ',' + loginPhone,
                        password: $("#loginPdw").val(),
                        Ticket: verify.Ticket,
                        Randstr: verify.Randstr,
                        bizState: verify.bizState
                    };

                    $.ajax({
                        url: "/AppAccount/Login",
                        type: "post",
                        dataType: "json",
                        data: para,
                        success: function (e) {
                            e = e.data;
                            var url = "";
                            if (utils.GetQueryParams("returnUrl")) {
                                url = utils.GetQueryParams("returnUrl");
                                if (e.LanguageName) {
                                    var lang = language.getLanguageFromUrl(url);
                                    url = lang ? "/" + e.LanguageName + url.substr(url.indexOf(lang) + lang.length) : "/" + e.LanguageName + url;
                                }
                            }
                            else {
                                if (e.LanguageName) {
                                    url = "/" + e.LanguageName;
                                }
                                else {
                                    url = "/" + language.getLanguage();
                                }
                            }
                            setCookie("login_phone", $('#loginPhone').val().trim(), 365);
                            window.location.href = url;
                        },
                        error: function (e) {
                            utils.ShowAjaxError(e, errorel);
                        }
                    });
                } else {
                    // 验证失败
                }
                captcha.destroy();  // 隐藏验证码
            }, { bizState: 'login' });
        }
        // 加载验证码
        captcha.show();
    } else {
        var para = {
            loginName: PhoneNumberAreaCode + ',' + loginPhone,
            password: $("#loginPdw").val()
        };
        $.ajax({
            url: "/AppAccount/Login",
            type: "post",
            dataType: "json",
            data: para,
            success: function (e) {
                e = e.data;
                var url = "";
                if (utils.GetQueryParams("returnUrl")) {
                    url = utils.GetQueryParams("returnUrl");
                    if (e.LanguageName) {
                        var lang = language.getLanguageFromUrl(url);
                        url = lang ? "/" + e.LanguageName + url.substr(url.indexOf(lang) + lang.length) : "/" + e.LanguageName + url;
                    }
                }
                else {
                    if (e.LanguageName) {
                        url = "/" + e.LanguageName;
                    }
                    else {
                        url = "/" + language.getLanguage();
                    }
                }
                setCookie("login_phone", $('#loginPhone').val().trim(), 365);
                window.location.href = url;
            },
            error: function (e) {
                utils.ShowAjaxError(e, errorel);
            }
        });
    }
});

$('#loginPdw,#loginMail').on('keypress', function (e) {
    if (e.keyCode == 13) {
        $('#loginBtn').click();
    }
});

$("#areacodes").phoneAreaCodes();
$('#areacodes-login').phoneAreaCodes();

function registModal() {
    $("#m-regist").modal('show');
}

function loginModal() {
    $("#m-login").modal('show');
}
function CloseModal() {
    $('.modal').modal('hide');
}